﻿/* 内部格式化器(仅用于数字) */
function cst_doFormat(value, digits) {
    var str = value.toString();
    while (str.length < digits)
        str = '0' + str;
    return str;
}

/* 转换 JSON 格式日期字符串 */
function cst_FromJSONDate(value) {
    if (!value)
        return value;

    if (typeof value != 'string')
        return value;

    var rgx = /\/Date\((-?\d+)\+\d+\)\//;
    var match = rgx.exec(value);
    if (!match)
        return value;

    return new Date(parseInt(match[1]));
}

/* 转换为日期字符串 */
function cst_ToDateString(value) {
    if (!value) return value;

    value = cst_FromJSONDate(value);

    value = value.toString().replace(/\-/g, '/');
    var date = new Date(value);
    var str =
        cst_doFormat(date.getFullYear(), 4) + '-' +
        cst_doFormat(date.getMonth() + 1, 2) + '-' +
        cst_doFormat(date.getDate(), 2);
    return str;
}

/* 转换为日期时间字符串 */
function cst_ToDateTimeString(value) {
    if (!value) return value;

    value = cst_FromJSONDate(value);

    value = value.toString().replace(/\-/g, '/');
    var date = new Date(value);
    var str =
        cst_doFormat(date.getFullYear(), 4) + '-' +
        cst_doFormat(date.getMonth() + 1, 2) + '-' +
        cst_doFormat(date.getDate(), 2) + ' ' +
        cst_doFormat(date.getHours(), 2) + ':' +
        cst_doFormat(date.getMinutes(), 2) + ':' +
        cst_doFormat(date.getSeconds(), 2);
    return str;
}

/* 将文本内容整理成HTML段落 */
function cst_FormatContentHTML(value) {
    var html = value || '';
    html = html.replace(/\r\n/g, '</p></p>');
    html = html.replace(/[\r\n]/g, '<br />');
    html = html.replace(/\t/g, '&nbsp;&nbsp;');
    return '<p>' + html + '</p>';
}

/* 转换为定长文本 */
function cst_ToFixedString(value, maxLength) {
    if (!value)
        return value;

    if (typeof (value) != 'string')
        return value;

    if (value.length <= maxLength)
        return value;

    return value.substring(0, maxLength) + '...';
}